Energy efficiency is one of the most critical issues in the design of battery-powered portable devices such as mobile phones, personal digital assistants (PDAs) and audio/video players. The predominant workload running on most of these devices is now generated by multimedia processing applications, e.g. audio/video decoders. This has resulted in a considerable interest in power management schemes for portable devices running multimedia applications. To improve on energy savings of these portable devices, two main techniques, i.e. dynamic voltage scaling (DVS) and dynamic power management (DPM), have been developed over the last couple of years. DVS relies on changing the frequency and voltage of the processor at runtime to match the workload demand generated by an application while DPM-based techniques rely on switching off parts of a device, e.g. processor, hard disk, display, at runtime based on their usage.
Typically, multimedia applications exhibit a high degree of data-dependent variability in their execution requirements. For example, the ratio of the maximum and the average workload generated by an MPEG decoder application may be as high as a factor of 10. In addition, there may also be other types of variability such as the variability in the input-output rates of an application. For example, the variable length decoding task in an MPEG decoder consumes a variable number of bits corresponding to each compressed macroblock that is generated. In the case of multimedia applications, many DVS-based techniques exploit this variability to scale the voltage and frequency of the processor at runtime to match the changing workload. As a result, two broad classes of techniques have been developed.
The first class of techniques relies on control-theoretic feedback techniques to predict the future workload based on the recent past workload. One main disadvantage of this class of techniques is that they are computationally expensive and are difficult to implement because the voltage of the processor needs to be frequently changed at runtime. Further, it is difficult to give performance and quality-of-service guarantees based on these techniques because the predictions might be wrong occasionally.
The second class of techniques attempt to statically characterize the bounds on the variability and use these bounds at runtime. Although this allows for quality-of-service guarantees, such static characterizations usually do not lead to useful energy savings.
Therefore, there is a need to provide a technique or scheme that seeks to address at least one of the above-mentioned problems.